The advancement of computing technology brings improvements in functionality, features, and usability of personal computers. Unfortunately, these benefits come with the cost of increased complexity in operating systems and other system software. One of the undesired consequences of increased system complexity is the introduction of inefficiencies in the use of computer resources. One example of such inefficiencies is the maintained presence of unused objects, i.e., data or programs, that occupy system resources such as memory or CPU cycles, and in some cases even reduce the computer system's overall performance.
Currently, the problem of managing such “garbage” objects in object-oriented programming languages such as Java, where the technology of garbage collection is built-in and the developer does not have to consider releasing allocated memory after the completion of the object. These technologies have worked out well, for example, in the virtual machine language of Java, Java Virtual Machine (JVM), however, these techniques cannot readily be deployed throughout a computer system reliably, since different computer systems have a variety of different hardware and software configurations outside of the developer's control.
In addition to the direct control of computer resources, an important task involves adapting the management process, which includes an assessment of various parameters. Currently this problem is addressed by running a cleaning task at an opportune moment, for example, as disclosed in U.S. Patent Application Pub. No. 2008/0172431, or by setting the parameters of the garbage collector, as disclosed in U.S. Patent Application Pub. No. 2009/0319255 and in U.S. Pat. No. 7,529,786. Another important task in improving the management of computer resources is assessing the criticality of unnecessary data in terms of impact on the computer system's operation. This problem is currently addressed to some extent by looking at the ratio of resources of the computer system and the amount of garbage on it. Similar mechanisms are described in Japanese Patent Publication No. JP61262949 and U.S. Pat. No. 7,174,354. To assess the degree of congestion of the computer one may also apply concepts such as checking the availability of a specific resource, such disclosed U.S. Pat. Nos. 6,230,204 and 5,943,480.
Although many approaches such as these for managing garbage objects have been proposed, they tend to be either very complex, or are targeted to a specific feature in garbage collection. Also, notably, the tasks associated with garbage collection are themselves difficult, i.e., computationally expensive; thus, running a garbage management process for the purpose of improving system performance, can itself constitute a load on the computer system that affects its performance. For these, and other reasons, a need remains for a simple, widely-deployable, holistic approach to managing garbage objects for the purpose of improving overall computer system performance.